//
//  CZUserAcount.swift
//  WeiBO28
//
//  Created by 飞奔的羊 on 16/5/12.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class CZUserAcount: NSObject {
//用户唯一的票据
	var access_token: String?
	//access_token 的生命周期,单位是秒数
	var expires_in: NSTimeInterval = 0 {
		didSet {
		//当前时间 + 过期秒数
		expiresDate = NSDate().dateByAddingTimeInterval(expires_in)
		}
	
	}
	
	var expiresDate: NSDate?
	var uid: Int64 = 0
	var name: String?
	var avatar_large: String?
	
	init(dic: [String: AnyObject]) {
		
		super.init()
		
		setValuesForKeysWithDictionary(dic)
		
	}
	
	override func setValue(value: AnyObject?, forUndefinedKey key: String) {
		
	}
	//重写 description 属性
	override var description: String {
	
		let kes = ["access_token","expires_in","uid","name","avatar_large"]
		return dictionaryWithValuesForKeys(kes).description
	
	}
	
	//归档和接档
	func encodeWithCoder(aCoder: NSCoder) {
	aCoder.encodeObject(access_token, forKey: "access_token")
		aCoder.encodeObject(expiresDate, forKey: "expiresDate")
		aCoder.encodeInt64(uid, forKey: "uid")
		aCoder.encodeObject(name, forKey: "name")
		aCoder.encodeObject(avatar_large, forKey: "avatar_large")
	
	
	
	
	}
	
	//解档
	required init?(coder aDecoder: NSCoder) {
		access_token = aDecoder.decodeObjectForKey("access_token") as? String
		
		expiresDate = aDecoder.decodeObjectForKey("expiresDate") as? NSDate
		
		uid = aDecoder.decodeInt64ForKey("uid")
		name = aDecoder.decodeObjectForKey("name") as? String
		
		avatar_large = aDecoder.decodeObjectForKey("avatar_large") as? String
		
		
	}
	
	//保存用户对象
	func saveUserAccount() -> Bool {
		let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
		
	return NSKeyedArchiver.archiveRootObject(self, toFile: path)
		
	
	
	
	}
	//解档
	class func loadUserAccount() -> CZUserAcount? {
	// 归档路径
		let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
		
	 return NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? CZUserAcount
	
	
	
	}
	
	
	
	
	
	
	
	
	
}
